@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion

echo 🔄 开始更新API文档...
echo =============================

:: 项目配置
set "PROJECT_DIR=%~dp0"
set "DOCS_DIR=%PROJECT_DIR%docs"
set "SERVER_URL=http://localhost:8080"
set "API_DOCS_URL=%SERVER_URL%/api/api-docs"

:: 检查服务是否运行
echo 🔍 检查服务状态...
curl -s -f "%API_DOCS_URL%" > nul
if %errorlevel% neq 0 (
    echo ❌ 服务未运行或无法访问: %API_DOCS_URL%
    echo ⚠️ 请确保应用已启动: mvn spring-boot:run
    pause
    exit /b 1
)

echo ✅ 服务正常运行

:: 创建docs目录
if not exist "%DOCS_DIR%" (
    echo 📁 创建docs目录...
    mkdir "%DOCS_DIR%"
    echo ✅ docs目录创建成功
)

:: 备份现有文档
if exist "%DOCS_DIR%\api-docs.json" (
    echo 📦 备份现有文档...
    if not exist "%DOCS_DIR%\backup" mkdir "%DOCS_DIR%\backup"
    copy "%DOCS_DIR%\*.json" "%DOCS_DIR%\backup\" > nul 2>&1
    copy "%DOCS_DIR%\*.md" "%DOCS_DIR%\backup\" > nul 2>&1
    copy "%DOCS_DIR%\*.html" "%DOCS_DIR%\backup\" > nul 2>&1
    echo ✅ 文档备份完成
)

:: 更新JSON文档
echo 📄 更新JSON文档...
curl -s "%API_DOCS_URL%" -o "%DOCS_DIR%\api-docs.json"
if %errorlevel% neq 0 (
    echo ❌ api-docs.json 更新失败
    pause
    exit /b 1
)

copy "%DOCS_DIR%\api-docs.json" "%DOCS_DIR%\openapi.json"
echo ✅ JSON文档更新成功

:: 运行Shell脚本更新其他格式
echo 🔄 更新Markdown和HTML文档...
if exist "%PROJECT_DIR%update-docs.sh" (
    bash "%PROJECT_DIR%update-docs.sh" --no-backup
) else (
    echo ⚠️ update-docs.sh 脚本不存在，跳过Markdown和HTML更新
)

:: 显示更新摘要
echo.
echo 🎉 API文档更新完成！
echo.
echo 📋 更新的文件：
echo   - docs\api-docs.json (OpenAPI JSON）
echo   - docs\openapi.json (标准JSON）
echo   - docs\api.md (Markdown格式）
echo   - docs\api.html (HTML格式）
echo.
echo 📖 查看文档：
echo   - 在浏览器中打开: docs\api.html
echo   - 在线交互式文档: %SERVER_URL%/swagger-ui.html
echo.

pause